using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using ShopPowerTemplate.Entities;

namespace ShopPowerTemplate.WcfService
{
	[ServiceContract]
    public interface IWebServiceBase
    {
        //[OperationContract]
        //List<Address> FindAllAddress();

        //[OperationContract]
        //Address FindAddress(int id);

        //[OperationContract]
        //Address AddAddress(Address address);

        //[OperationContract]
        //void ChangeAddress(Address address);

        //[OperationContract]
        //void RemoveAddress(Address address);
		
        //[OperationContract]		
        //List<Address> SearchAddress(string searchValue);
		
        //[OperationContract]	
        //int SearchCountAddress(string searchValue);
	
        //[OperationContract]
        //List<AppSettings> FindAllAppSettings();

        //[OperationContract]
        //AppSettings FindAppSettings(int id);

        //[OperationContract]
        //AppSettings AddAppSettings(AppSettings appSettings);

        //[OperationContract]
        //void ChangeAppSettings(AppSettings appSettings);
		
        //[OperationContract]
        //void RemoveAppSettings(AppSettings appSettings);
		
        //[OperationContract]		
        //List<AppSettings> SearchAppSettings(string searchValue);
		
        //[OperationContract]	
        //int SearchCountAppSettings(string searchValue);
	
        //[OperationContract]
        //List<Category> FindAllCategory();

        //[OperationContract]
        //Category FindCategory(int id);

        //[OperationContract]
        //Category AddCategory(Category category);

        //[OperationContract]
        //void ChangeCategory(Category category);
		
        //[OperationContract]
        //void RemoveCategory(Category category);
		
        //[OperationContract]		
        //List<Category> SearchCategory(string searchValue);
		
        //[OperationContract]	
        //int SearchCountCategory(string searchValue);
	
        //[OperationContract]	
        //void CategoryAddSubcategories(Category category, Subcategory subcategories);

        //[OperationContract]	
        //void CategoryRemoveSubcategories(Category category, Subcategory subcategories);
		
        //[OperationContract]		
        //List<Subcategory> CategoryGetSubcategoriesFor(Category category);
        //[OperationContract]
        //List<Customer> FindAllCustomer();

        //[OperationContract]
        //Customer FindCustomer(int id);

        //[OperationContract]
        //Customer AddCustomer(Customer customer);

        //[OperationContract]
        //void ChangeCustomer(Customer customer);
		
        //[OperationContract]
        //void RemoveCustomer(Customer customer);
		
        //[OperationContract]		
        //List<Customer> SearchCustomer(string searchValue);
		
        //[OperationContract]	
        //int SearchCountCustomer(string searchValue);
	
        //[OperationContract]	
        //void CustomerAddReviews(Customer customer, Review reviews);

        //[OperationContract]	
        //void CustomerRemoveReviews(Customer customer, Review reviews);
		
        //[OperationContract]		
        //List<Review> CustomerGetReviewsFor(Customer customer);
        //[OperationContract]	
        //void CustomerAddOrders(Customer customer, Order orders);

        //[OperationContract]	
        //void CustomerRemoveOrders(Customer customer, Order orders);
		
        //[OperationContract]		
        //List<Order> CustomerGetOrdersFor(Customer customer);
        //[OperationContract]	
        //void CustomerAddAddresses(Customer customer, Address addresses);

        //[OperationContract]	
        //void CustomerRemoveAddresses(Customer customer, Address addresses);
		
        //[OperationContract]		
        //List<Address> CustomerGetAddressesFor(Customer customer);
        //[OperationContract]
        //List<Image> FindAllImage();

        //[OperationContract]
        //Image FindImage(int id);

        //[OperationContract]
        //Image AddImage(Image image);

        //[OperationContract]
        //void ChangeImage(Image image);
		
        //[OperationContract]
        //void RemoveImage(Image image);
		
        //[OperationContract]		
        //List<Image> SearchImage(string searchValue);
		
        //[OperationContract]	
        //int SearchCountImage(string searchValue);
	
        //[OperationContract]
        //List<Option> FindAllOption();

        //[OperationContract]
        //Option FindOption(int id);

        //[OperationContract]
        //Option AddOption(Option option);

        //[OperationContract]
        //void ChangeOption(Option option);
		
        //[OperationContract]
        //void RemoveOption(Option option);
		
        //[OperationContract]		
        //List<Option> SearchOption(string searchValue);
		
        //[OperationContract]	
        //int SearchCountOption(string searchValue);
	
        //[OperationContract]	
        //void OptionAddProductDetails(Option option, ProductDetail productDetails);

        //[OperationContract]	
        //void OptionRemoveProductDetails(Option option, ProductDetail productDetails);
		
        //[OperationContract]		
        //List<ProductDetail> OptionGetProductDetailsFor(Option option);
        //[OperationContract]
        //List<OptionType> FindAllOptionType();

        //[OperationContract]
        //OptionType FindOptionType(int id);

        //[OperationContract]
        //OptionType AddOptionType(OptionType optionType);

        //[OperationContract]
        //void ChangeOptionType(OptionType optionType);
		
        //[OperationContract]
        //void RemoveOptionType(OptionType optionType);
		
        //[OperationContract]		
        //List<OptionType> SearchOptionType(string searchValue);
		
        //[OperationContract]	
        //int SearchCountOptionType(string searchValue);
	
        //[OperationContract]	
        //void OptionTypeAddOptions(OptionType optionType, Option options);

        //[OperationContract]	
        //void OptionTypeRemoveOptions(OptionType optionType, Option options);
		
        //[OperationContract]		
        //List<Option> OptionTypeGetOptionsFor(OptionType optionType);
        //[OperationContract]
        //List<Order> FindAllOrder();

        //[OperationContract]
        //Order FindOrder(int id);

        //[OperationContract]
        //Order AddOrder(Order order);

        //[OperationContract]
        //void ChangeOrder(Order order);
		
        //[OperationContract]
        //void RemoveOrder(Order order);
		
        //[OperationContract]		
        //List<Order> SearchOrder(string searchValue);
		
        //[OperationContract]	
        //int SearchCountOrder(string searchValue);
	
        //[OperationContract]	
        //void OrderAddOrderDetails(Order order, OrderDetail orderDetails);

        //[OperationContract]	
        //void OrderRemoveOrderDetails(Order order, OrderDetail orderDetails);
		
        //[OperationContract]		
        //List<OrderDetail> OrderGetOrderDetailsFor(Order order);
        //[OperationContract]
        //List<OrderDetail> FindAllOrderDetail();

        //[OperationContract]
        //OrderDetail FindOrderDetail(int id);

        //[OperationContract]
        //OrderDetail AddOrderDetail(OrderDetail orderDetail);

        //[OperationContract]
        //void ChangeOrderDetail(OrderDetail orderDetail);
		
        //[OperationContract]
        //void RemoveOrderDetail(OrderDetail orderDetail);
		
        //[OperationContract]		
        //List<OrderDetail> SearchOrderDetail(string searchValue);
		
        //[OperationContract]	
        //int SearchCountOrderDetail(string searchValue);
	
        //[OperationContract]
        //List<OrderState> FindAllOrderState();

        //[OperationContract]
        //OrderState FindOrderState(int id);

        //[OperationContract]
        //OrderState AddOrderState(OrderState orderState);

        //[OperationContract]
        //void ChangeOrderState(OrderState orderState);
		
        //[OperationContract]
        //void RemoveOrderState(OrderState orderState);
		
        //[OperationContract]		
        //List<OrderState> SearchOrderState(string searchValue);
		
        //[OperationContract]	
        //int SearchCountOrderState(string searchValue);
	
        //[OperationContract]	
        //void OrderStateAddOrders(OrderState orderState, Order orders);

        //[OperationContract]	
        //void OrderStateRemoveOrders(OrderState orderState, Order orders);
		
        //[OperationContract]		
        //List<Order> OrderStateGetOrdersFor(OrderState orderState);
        //[OperationContract]
        //List<Product> FindAllProduct();

        //[OperationContract]
        //Product FindProduct(int id);

        //[OperationContract]
        //Product AddProduct(Product product);

        //[OperationContract]
        //void ChangeProduct(Product product);
		
        //[OperationContract]
        //void RemoveProduct(Product product);
		
        //[OperationContract]		
        //List<Product> SearchProduct(string searchValue);
		
        //[OperationContract]	
        //int SearchCountProduct(string searchValue);
	
        //[OperationContract]	
        //void ProductAddImages(Product product, Image images);

        //[OperationContract]	
        //void ProductRemoveImages(Product product, Image images);
		
        //[OperationContract]		
        //List<Image> ProductGetImagesFor(Product product);
        //[OperationContract]	
        //void ProductAddReviews(Product product, Review reviews);

        //[OperationContract]	
        //void ProductRemoveReviews(Product product, Review reviews);
		
        //[OperationContract]		
        //List<Review> ProductGetReviewsFor(Product product);
        //[OperationContract]	
        //void ProductAddProductDetails(Product product, ProductDetail productDetails);

        //[OperationContract]	
        //void ProductRemoveProductDetails(Product product, ProductDetail productDetails);
		
        //[OperationContract]		
        //List<ProductDetail> ProductGetProductDetailsFor(Product product);
        //[OperationContract]
        //List<ProductDetail> FindAllProductDetail();

        //[OperationContract]
        //ProductDetail FindProductDetail(int id);

        //[OperationContract]
        //ProductDetail AddProductDetail(ProductDetail productDetail);

        //[OperationContract]
        //void ChangeProductDetail(ProductDetail productDetail);
		
        //[OperationContract]
        //void RemoveProductDetail(ProductDetail productDetail);
		
        //[OperationContract]		
        //List<ProductDetail> SearchProductDetail(string searchValue);
		
        //[OperationContract]	
        //int SearchCountProductDetail(string searchValue);
	
        //[OperationContract]	
        //void ProductDetailAddOrderDetails(ProductDetail productDetail, OrderDetail orderDetails);

        //[OperationContract]	
        //void ProductDetailRemoveOrderDetails(ProductDetail productDetail, OrderDetail orderDetails);
		
        //[OperationContract]		
        //List<OrderDetail> ProductDetailGetOrderDetailsFor(ProductDetail productDetail);
        //[OperationContract]	
        //void ProductDetailAddOption(ProductDetail productDetail, Option option);

        //[OperationContract]	
        //void ProductDetailRemoveOption(ProductDetail productDetail, Option option);
		
        //[OperationContract]		
        //List<Option> ProductDetailGetOptionFor(ProductDetail productDetail);
        //[OperationContract]
        //List<Review> FindAllReview();

        //[OperationContract]
        //Review FindReview(int id);

        //[OperationContract]
        //Review AddReview(Review review);

        //[OperationContract]
        //void ChangeReview(Review review);
		
        //[OperationContract]
        //void RemoveReview(Review review);
		
        //[OperationContract]		
        //List<Review> SearchReview(string searchValue);
		
        //[OperationContract]	
        //int SearchCountReview(string searchValue);
	
        //[OperationContract]
        //List<ShippingCost> FindAllShippingCost();

        //[OperationContract]
        //ShippingCost FindShippingCost(int id);

        //[OperationContract]
        //ShippingCost AddShippingCost(ShippingCost shippingCost);

        //[OperationContract]
        //void ChangeShippingCost(ShippingCost shippingCost);
		
        //[OperationContract]
        //void RemoveShippingCost(ShippingCost shippingCost);
		
        //[OperationContract]		
        //List<ShippingCost> SearchShippingCost(string searchValue);
		
        //[OperationContract]	
        //int SearchCountShippingCost(string searchValue);
	
        //[OperationContract]
        //List<Subcategory> FindAllSubcategory();

        //[OperationContract]
        //Subcategory FindSubcategory(int id);

        //[OperationContract]
        //Subcategory AddSubcategory(Subcategory subcategory);

        //[OperationContract]
        //void ChangeSubcategory(Subcategory subcategory);
		
        //[OperationContract]
        //void RemoveSubcategory(Subcategory subcategory);
		
        //[OperationContract]		
        //List<Subcategory> SearchSubcategory(string searchValue);
		
        //[OperationContract]	
        //int SearchCountSubcategory(string searchValue);
	
        //[OperationContract]	
        //void SubcategoryAddProducts(Subcategory subcategory, Product products);

        //[OperationContract]	
        //void SubcategoryRemoveProducts(Subcategory subcategory, Product products);
		
        //[OperationContract]		
        //List<Product> SubcategoryGetProductsFor(Subcategory subcategory);
        //[OperationContract]
        //List<User> FindAllUser();

        //[OperationContract]
        //User FindUser(int id);

        //[OperationContract]
        //User AddUser(User user);

        //[OperationContract]
        //void ChangeUser(User user);
		
        //[OperationContract]
        //void RemoveUser(User user);
		
        //[OperationContract]		
        //List<User> SearchUser(string searchValue);
		
        //[OperationContract]	
        //int SearchCountUser(string searchValue);
	
    }
}
